# -*- coding: utf-8 -*-
'''
projecto- classe destinada a escrever as estatisticas num ficheiro CSV
autor- Ana Isabel Marques 6052
data de criação do módulo- 01/12/2011
'''

import csv
from Estatisticas import obter_estatisticas

class CriarCSV:

    #Construtor
    def __init__(self):
        
        pass

    
    #Este método escreve a lista de docentes segundo o estabelecimento
    #e ano, em que o ano e o estabelecimento foram escolhidos pelo utilizador
    #num ficheiro CSV
    def csv_docentes_estabelecimento_ano(self, estabelecimento, ano):

        estatisticas = obter_estatisticas()
        
        ficheiroCSV = open('csv/Docentes_Estabelecimento_Ano.csv', 'wb')

        escritaFicheiro = csv.writer(ficheiroCSV, delimiter=',')
        
        nDocentes = estatisticas.numero_docentes_ano_estabelecimento(estabelecimento, ano)
        
        escritaFicheiro.writerow(["Nome do Estabelecimento", "Ano"])
        escritaFicheiro.writerow([estabelecimento, ano, nDocentes])
        escritaFicheiro.writerow(["Nome dos Docentes:"])

        listaDocentes = estatisticas.lista_docentes_ano_estabelecimento(estabelecimento, ano)
        for x in listaDocentes:
            escritaFicheiro.writerow([x])
            pass

        ficheiroCSV.close()
        pass

    #Este método escreve a lista de docentes divididos por categoria profissional, por estabelecimento
    #e ano, em que a categoria profissional, o ano e o estabelecimento foram escolhidos pelo utilizador
    #num ficheiro CSV
    def csv_docentes_categoria_estabelecimento_ano(self, ano, estabelecimento, categoria):

        estatisticas = obter_estatisticas()
        
        ficheiroCSV = open('csv/Docentes_Categoria_Estabelecimento_Ano.csv', 'wb')

        escritaFicheiro = csv.writer(ficheiroCSV, delimiter=',')
        nDocentes = estatisticas.numero_docentes_ano_estabelecimento_categoria(ano, estabelecimento, categoria)
        
        escritaFicheiro.writerow(["Nome do Estabelecimento", "Ano", "Categoria Profissional", "Número de Docentes"])
        escritaFicheiro.writerow([estabelecimento, ano, categoria, nDocentes])
        escritaFicheiro.writerow(["Nome dos Docentes:"])

        listaDocentes = estatisticas.lista_docentes_ano_estabelecimento_categoria(ano, estabelecimento, categoria)
        for x in listaDocentes:
            escritaFicheiro.writerow([x])
            pass

        ficheiroCSV.close()
        pass

    
    #Este método escreve a lista de docentes divididos por grau de ensino, por estabelecimento
    #e ano, em que o grau de ensino, o ano e o estabelecimento foram escolhidos pelo utilizador
    #num ficheiro CSV
    def csv_docentes_grau_estabelecimento_ano(self, ano, estabelecimento, grau):

        estatisticas = obter_estatisticas()
        
        ficheiroCSV = open('csv/Docentes_Grau_Estabelecimento_Ano.csv', 'wb')

        escritaFicheiro = csv.writer(ficheiroCSV, delimiter=',')
        nDocentes = estatisticas.numero_docentes_ano_estabelecimento_grau(ano, estabelecimento, grau)
        
        escritaFicheiro.writerow(["Nome do Estabelecimento", "Ano", "Grau de Ensino", "Número de Docentes"])
        escritaFicheiro.writerow([estabelecimento, ano, grau, nDocentes])
        escritaFicheiro.writerow(["Nome dos Docentes:"])

        listaDocentes = estatisticas.lista_docentes_ano_estabelecimento_grau(ano, estabelecimento, grau)
        for x in listaDocentes:
            escritaFicheiro.writerow([x])
            pass

        ficheiroCSV.close()
        pass

